package com.zhiyou100.entity;

import com.zhiyou100.util.data.DateUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 房屋信息表
 * 房屋信息管理表 （与其他表有没有关系，与哪张表有关系）
 * 房屋唯一标识、所属地区、所属小区、单元号、所属楼层、房间号、面积、朝向、装修(精装、简装等)、是否双气、限住人数、配套设施(手动输入)、出租价格、出租状态(已出租/待出租/停止出租等)、房屋图片、完整地址信息、信息添加时间、信息最后更新时间等
 *
 * @author yang
 */

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class House implements Serializable {
    /**
     * 主键、自增
     * 唯一的标识
     */
    private Integer hid;

    /**
     * not null
     * 房屋所属的地区
     */
    private String harea;

    /**
     * not null
     * 房屋所属的小区
     */
    private String hcommunity;

    /**
     * not null
     * 房屋所属的单元
     */
    private String hunitnumber;

    /**
     * not null
     * 楼层
     */
    private Integer hfloor;

    /**
     * 房间号
     */
    private String hroomno;

    /**
     * 面积
     */
    private String hacreage;

    /**
     * 朝向
     */
    private Integer hdirection;

    /**
     * 精装 / 简装
     * 装修
     */
    private Integer hfitment;

    /**
     * 是 / 否
     * 是否双气 天热气、暖气
     */
    private Integer hisdoubleair;

    /**
     * 限住人数
     */
    private Integer hlimit;

    /**
     * 配套设施
     */
    private String hfacility;

    /**
     * 出租价格
     */
    private Float hprice;

    /**
     * 1 已出租
     * 2 未出租
     * 3 停止出租
     * 房屋状态
     */
    private Integer hstatus;

    /**
     * 图片地址
     * 保存图片的地址
     */
    private String himg;

    /**
     * 完整的地址
     */
    private String haddress;

    /**
     * 添加的时间
     */
    private Date haddtime;

    /**
     * 信息修改的时间
     */
    private Date hupdatetime;

    /**
     * 房间朝向 字符串
     * 默认朝南
     *
     * @return 东 南 西 北
     */
    public String getHdirectionStr() {
        switch (hdirection) {
            case 2:
                return "朝北";
            case 3:
                return "朝西";
            case 4:
                return "朝东";
            default:
                return "朝南";
        }
    }

    /**
     * 装修
     * 0 为精装 ，1 为简装
     *
     * @return 精装 ｜ 简装
     */
    public String getHfitmentStr() {
        if (hfitment == 1) {
            return "简装";
        } else {
            return "精装";
        }
    }

    /**
     * 是否有双气
     *
     * @return 天热气、暖气
     */
    public String getHisdoubleairStr() {
        if (hisdoubleair == 0) {
            return "有天热气，暖气";
        } else {
            return "没有天热气，暖气";
        }
    }

    /**
     * 1 已出租
     * 2 未出租
     * 3 停止出租
     * 房屋状态,默认未出租
     *
     * @return 房屋状态
     */
    public String getHstatusStr() {
        switch (hstatus) {
            case 2:
                return "未出租";
            case 3:
                return "停止出租";
            default:
                return "已出租";
        }

    }

    /**
     * 添加的时间
     *
     * @return 中文习惯的字符串 yyyy-MM-dd HH:mm:ss
     */
    public String getHaddtimeStr() {
        return DateUtil.dateToStr(haddtime);
    }

    /**
     * 修改的时间
     *
     * @return 中文习惯的字符串 yyyy-MM-dd HH:mm:ss
     */
    public String getHupdatetimeStr() {
        return DateUtil.dateToStr(hupdatetime);
    }

    /**
     * 修改的时间，改为  datetime-local
     * 日历 <input type="datetime-local" value="2020-01-01T20:21:12">
     *
     * @return yyyy-MM-ddTHH:mm:ss
     */
    public String getHupdatetimeStrT() {
        return DateUtil.dateToStr(hupdatetime, "yyyy-MM-dd'T'HH:mm:ss");
    }
}